package classificados.mbeans;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import classificados.negocio.Anuncio;
import classificados.negocio.Classificados;
import classificados.negocio.Usuario;

@ManagedBean(name="sessaoMB", eager=true)
@SessionScoped
public class SessaoMB {
	private Usuario usuario;
	private String descricao;
	private Double valor = 0.0d;
	private String mensagem;
	
	public SessaoMB() {
		super();
		this.usuario = null;
		this.mensagem = "";
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public Double getValor() {
		return valor;
	}

	public void setValor(Double valor) {
		this.valor = valor;
	}

	public String getMensagem() {
		String retorno = this.mensagem;
		this.mensagem = new String();
		return retorno;
	}

	public void setMensagem(String mensagem) {
		this.mensagem = mensagem;
	}
	
	public boolean isTemMensagem() {
		return !this.mensagem.isEmpty();
	}
	
	public boolean isLogado() {
		return usuario != null;
	}
	
	public boolean isNotLogado() {
		return usuario == null;
	}
	
	public String logout() {
		this.usuario = null;
		return "index.jsp";
	}
	
	public String cadastrarAnuncio() {
		Classificados negocio = Classificados.getInstancia();
		if (this.descricao != null && !this.descricao.isEmpty() && this.valor > 0) {
			Anuncio novo = new Anuncio(this.descricao, this.valor, this.usuario);
			if ( negocio.adicionaAnuncio(novo) ) {
				this.descricao = new String();
				this.valor = 0d;
				this.setMensagem("Anúncio cadastrado com sucesso!");
			} else {
				this.setMensagem("Anúncio idêntico já está cadastrado!");
			}
			return "index.jsp";
		} else {
			this.setMensagem("É necessária ser informada uma descrição e um valor maior que zero!");
		}
		return "cadastroAnuncio.jsp";
	}
}
